﻿using PlayMyLife.Definitions.HumanProperty;
using PlayMyLife.Definitions.StoryEvent;
using PlayMyLife.ModelLocal;

namespace ConfigEditor
{
    public interface ISettingSaverLoader
    {
        IView? View { get; set; }
        LocalConfigManager ConfigManager { get; }

        CreatePlaceEventArg[] Places { get; }
        bool AddPlace(CreatePlaceEventArg place);
        bool RemovePlace(long id);
        bool ChangePlaceData(CreatePlaceEventArg place);
        void RefreshAllPlaces(CreatePlaceEventArg[] places);

        CreateRoleEventArg[] Roles { get; }
        bool AddRole(CreateRoleEventArg role);
        bool RemoveRole(long id);
        bool ChangeRoleData(CreateRoleEventArg role);
        void RefreshAllRoles(CreateRoleEventArg[] roles);

        long RollFreeId();
        bool SaveToDevFiles();
        bool ExportToOutputFiles();
    }
}

